package com.ruoyi.company.service;


import com.ruoyi.company.domain.Company;
import com.ruoyi.company.domain.CompanyAddress;
import com.ruoyi.company.domain.CompanyAudit;
import com.ruoyi.product.domain.Product;
import com.ruoyi.product.domain.ProductAll;
import org.apache.ibatis.annotations.Param;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map;

public interface ICompanyServer {
    /**
     * 插入合作单位基础信息
     *
     * @param company 插入的数据信息
     * @return 结果
     */
    int insertCompany(Company company);

    /**
     * 根据主键查询合作单位的基础信息
     *
     * @param companyId 基础信息表主键
     * @return 结果
     */
    Company selectByCompanyId(Long companyId);

    public void importCompany(InputStream inputStream) throws IOException;

    public void updateCompanyAddress(List<CompanyAddress> companyAddress, Long companyId);

    public List<CompanyAddress> selectCompanyAddress(Long companyId);

    /**
     * 修改合作单位信息
     *
     * @param company 修改的信息
     * @return 结果
     */
    int updateCompany(Company company);

    int updateProduct(ProductAll productAll);

    List<Company> mycompany(Long companyId);

    /*
    生成质量管理协议
     */
    public void Quality(CompanyAudit companyAudit);

    public void CoAuthorization(CompanyAudit CompanyAudit);

    public void SaleAudit(CompanyAudit companyAudit);

    public Map<String, Object> selectQualification(Long companyId, String type);

    public void insertQuality(CompanyAudit companyAudit);

    public void insertLegal(CompanyAudit companyAudit);

    public void insertsaleAudit(CompanyAudit companyAudit);


    /**
     * 查询用户信息
     *
     * @param map 查询条件
     * @return 结果
     */
    List selectUserAndDept(Map map);

    /**
     * 通过公司的统一信用代码查询
     *
     * @param socialCreditCode 公司的统一代码
     * @return 结果
     */
    Company selectBySocialCreditCode(String socialCreditCode);
}
